<?php

declare(strict_types=1);
/**
 * This file is part of Hyperf.
 *
 * @link     https://www.hyperf.io
 * @document https://doc.hyperf.io
 * @contact  group@hyperf.io
 * @license  https://github.com/hyperf-cloud/hyperf/blob/master/LICENSE
 */

namespace App\Controller;

use Hyperf\HttpServer\Annotation\Middleware;
use App\Middleware\JTAuthMiddleware;
use App\Service\UserCenter\SkillListService;
use App\Service\User\ProfileModifyService;
use App\Service\User\UserFollowService;
use App\Service\User\UserSearchService;
use App\Service\User\v1_3_3\LovetagListService;
use App\Service\User\v1_1_4\ProfileExtraModifyService;
use App\Service\User\v1_1_4\QuestionAnswerService;
use App\Service\User\v1_1_4\QuestionListSevice;
use App\Service\User\v1_1_4\TagListService;
use App\Service\User\v1_2_2\SelectOpService;
use App\Service\User\v1_2_2\UserSearchService as V1_2_2UserSearchService;
use App\Service\User\v1_2_7\CheckWechatService as V1_2_7CheckWechatService;
use App\Service\User\v1_2_8\InviteBindInfoService;
use App\Service\User\v1_2_8\InviteBindService;
use App\Service\User\v1_3_3\MySocialProfileService;
use App\Service\User\v1_3_3\SocialProfileModifyService;
use App\Service\User\v1_3_4\UserVideoListService;
use App\Service\UserCenter\BlackAddService;
use App\Service\UserCenter\BlacklistService;
use App\Service\UserCenter\BlackRemoveService;
use App\Service\UserCenter\WithdrawBindService;
use App\Service\UserCenter\CallPermitService;
use App\Service\UserCenter\CoinSettingService;
use App\Service\UserCenter\FansListService;
use App\Service\UserCenter\FollowListService;
use App\Service\UserCenter\HostApplyCheckService;
use App\Service\UserCenter\HostApplyService;
use App\Service\UserCenter\MyProfileService;
use App\Service\UserCenter\SetMycoinService;
use App\Service\UserCenter\v1_0_8\AccountBindInfoService;
use App\Service\UserCenter\v1_0_8\CheckVerfiedService;
use App\Service\UserCenter\v1_0_8\WithdrawBindService as V1_0_8WithdrawBindService;
use App\Service\UserCenter\v1_0_8\WithdrawCheckService as V1_0_8WithdrawCheckService;
use App\Service\UserCenter\v1_0_8\WithdrawUnbindService;
use App\Service\UserCenter\v1_1_4\LevelDetailService;
use App\Service\UserCenter\v1_1_4\MyProfileExtraService;
use App\Service\UserCenter\v1_1_8\CoinSettingService as V1_1_8CoinSettingService;
use App\Service\UserCenter\v1_2_1\WechatSubmitService;
use App\Service\UserCenter\v1_2_7\SetMyShowService;
use App\Service\UserCenter\v1_3_3\MyEntranceService;
use App\Service\UserCenter\v1_3_4\MyEntranceService as V1_3_4MyEntranceService;
use App\Service\UserCenter\v1_3_3\WithdrawBindInfoService;
use App\Service\UserCenter\v1_3_4\MyLikeListService;
use App\Service\UserCenter\v1_3_4\WithdrawApplyService as V1_3_4WithdrawApplyService;
use App\Service\UserCenter\v1_3_5\HostCallRankService;
use App\Service\UserCenter\v1_3_5\HostPerformDetailService;
use App\Service\UserCenter\VideoPermitService;
use App\Service\UserCenter\VisitListService;
use App\Service\UserCenter\WithdrawApplyService;
use App\Service\UserCenter\WithdrawCheckService;
use App\Service\UserCenter\WithdrawInfoService;
use App\Service\UserCenter\WithdrawListService;
use Hyperf\HttpServer\Annotation\RequestMapping;
use Hyperf\HttpServer\Annotation\Controller;

/**
 * @Controller(prefix="user")
 */
class UserController extends AbstractController
{
    /**
     * 我的个人资料
     * @RequestMapping(path="my_profile", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function my_profile(MyProfileService $service)
    {
        return $service->response();
    }

    /**
     * 我的个人资料-其他信息
     * @RequestMapping(path="v1_1_4/my_profile_extra", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function my_profile_extra(MyProfileExtraService $service)
    {
        return $service->response();
    }

    /**
     * 粉丝列表
     * @RequestMapping(path="fans_list", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function fans_list(FansListService $service)
    {
        return $service->response();
    }

    /**
     * 关注列表
     * @RequestMapping(path="follow_list", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function follow_list(FollowListService $service)
    {
        return $service->response();
    }

    /**
     * 访客列表
     * @RequestMapping(path="visit_list", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function visit_list(VisitListService $service)
    {
        return $service->response();
    }

    /**
     * （取消）关注用户
     * @RequestMapping(path="follow", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function follow(UserFollowService $service)
    {
        return $service->response();
    }

    /**
     * 允许（关闭）接听语音通话
     * @RequestMapping(path="call_permit", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function call_permit(CallPermitService $service)
    {
        return $service->response();
    }

    /**
     * 允许（关闭）接听视频通话
     * @RequestMapping(path="video_permit", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function video_permit(VideoPermitService $service)
    {
        return $service->response();
    }

    /**
     * 收费设置列表详情
     * @RequestMapping(path="coin/set_detail", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function coin_setting_detail(CoinSettingService $service)
    {
        return $service->response();
    }

    /**
     * 收费设置列表详情-1.1.8
     * @RequestMapping(path="v1_1_8/coin/set_detail", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function v1_1_8_coin_setting_detail(V1_1_8CoinSettingService $service)
    {
        return $service->response();
    }

    /**
     * 收费设置
     * @RequestMapping(path="coin/set_my", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function setmy_coin(SetMycoinService $service)
    {
        return $service->response();
    }

    /**
     * 开通个人技能（声优申请）
     * @RequestMapping(path="apply/host", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function host_apply(HostApplyService $service)
    {
        return $service->response();
    }

    /**
     * 个人技能申请查询
     * @RequestMapping(path="apply/check", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function host_apply_check(HostApplyCheckService $service)
    {
        return $service->response();
    }

    /**
     * 修改个人资料
     * @RequestMapping(path="profile/modify", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function profile_modify(ProfileModifyService $service)
    {
        return $service->response();
    }

    /**
     * 搜索用户
     * @RequestMapping(path="search", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function search(UserSearchService $service)
    {
        return $service->response();
    }

    /**
     * 粉丝列表
     * @RequestMapping(path="skill/list", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function skill_list(SkillListService $service)
    {
        return $service->response();
    }

    /**
     * 提现绑定用户私人信息（支付宝等）
     * @RequestMapping(path="withdraw/bind", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function withdraw_bind(WithdrawBindService $service)
    {
        return $service->response();
    }

    /**
     * 提现绑定收款账号
     * @RequestMapping(path="v1_0_8/withdraw/bind", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function withdraw_bind_v1_0_8(V1_0_8WithdrawBindService $service)
    {
        return $service->response();
    }

    /**
     * 提现绑定收款账号
     * @RequestMapping(path="v1_0_8/withdraw/account_info", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function account_info(AccountBindInfoService $service)
    {
        return $service->response();
    }

    /**
     * 是否进行实名认证
     * @RequestMapping(path="v1_0_8/check_veryfied", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function check_veryfied(CheckVerfiedService $service)
    {
        return $service->response();
    }

    /**
     * 解绑收款账号
     * @RequestMapping(path="v1_0_8/withdraw/unbind", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function withdraw_unbind_v1_0_8(WithdrawUnbindService $service)
    {
        return $service->response();
    }

    /**
     * 提现详情信息
     * @RequestMapping(path="withdraw/info", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function withdraw_info(WithdrawInfoService $service)
    {
        return $service->response();
    }

    /**
     * 提现申请
     * @RequestMapping(path="withdraw/apply", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function withdraw_apply(WithdrawApplyService $service)
    {
        return $service->response();
    }

    /**
     * 提现申请
     * @RequestMapping(path="v1_3_4/withdraw/apply", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function v1_3_4_withdraw_apply(V1_3_4WithdrawApplyService $service)
    {
        return $service->response();
    }

    /**
     * 提现记录列表
     * @RequestMapping(path="withdraw/list", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function withdraw_list(WithdrawListService $service)
    {
        return $service->response();
    }

    /**
     * 提现资料检测
     * @RequestMapping(path="withdraw/check", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function withdraw_check(WithdrawCheckService $service)
    {
        return $service->response();
    }

    /**
     * 提现资料检测
     * @RequestMapping(path="v1_0_8/withdraw/check", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function withdraw_check_v1_0_8(V1_0_8WithdrawCheckService $service)
    {
        return $service->response();
    }

    /**
     * 黑名单列表
     * @RequestMapping(path="black/list", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function black_list(BlacklistService $service)
    {
        return $service->response();
    }

    /**
     * 加入黑名单
     * @RequestMapping(path="black/add", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function black_add(BlackAddService $service)
    {
        return $service->response();
    }

    /**
     * 移除黑名单
     * @RequestMapping(path="black/remove", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function black_remove(BlackRemoveService $service)
    {
        return $service->response();
    }

    /**
     * 标签列表
     * @RequestMapping(path="v1_1_4/tag_list", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function tag_list(TagListService $service)
    {
        return $service->response();
    }

    /**
     * 喜欢的标签列表
     * @RequestMapping(path="v1_3_3/lovetag_list", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function lovetag_list(LovetagListService $service)
    {
        return $service->response();
    }

    /**
     * 修改个人资料-其他
     * @RequestMapping(path="v1_1_4/profile_extra/modify", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function profile_extra_modify(ProfileExtraModifyService $service)
    {
        return $service->response();
    }

    /**
     * 问题列表
     * @RequestMapping(path="v1_1_4/question/list", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function question_list(QuestionListSevice $service)
    {
        return $service->response();
    }

    /**
     * 问题回答提交
     * @RequestMapping(path="v1_1_4/question/answer", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function question_answer(QuestionAnswerService $service)
    {
        return $service->response();
    }

    /**
     * 等级详情
     * @RequestMapping(path="v1_1_4/level/detail", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function level_detail(LevelDetailService $service)
    {
        return $service->response();
    }

    /**
     * 微信号提交认证
     * @RequestMapping(path="v1_2_1/wechat_submit", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function wechat_submit(WechatSubmitService $service)
    {
        return $service->response();
    }

    /**
     * 查看对方微信账号
     * @RequestMapping(path="v1_2_1/wechat_check", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function wechat_check(V1_2_7CheckWechatService $service)
    {
        return $service->response();
    }

    /**
     * 查看对方微信账号
     * @RequestMapping(path="v1_2_7/wechat_check", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function V1_2_7_wechat_check(V1_2_7CheckWechatService $service)
    {
        return $service->response();
    }

    /**
     * 用户搜索
     * @RequestMapping(path="v1_2_2/search", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function user_search(V1_2_2UserSearchService $service)
    {
        return $service->response();
    }

    /**
     * 搜索选项
     * @RequestMapping(path="v1_2_2/select_option", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function select_op(SelectOpService $service)
    {
        return $service->response();
    }

    /**
     * 设置我的显示（隐藏）
     * @RequestMapping(path="v1_2_7/set/my_show", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function set_my_show(SetMyShowService $service)
    {
        return $service->response();
    }

    /**
     * 绑定邀请关系
     * @RequestMapping(path="v1_2_8/invite/bind", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function invite_bind(InviteBindService $service)
    {
        return $service->response();
    }

    /**
     * 绑定邀请信息
     * @RequestMapping(path="v1_2_8/invite/bind_info", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function invite_bind_info(InviteBindInfoService $service)
    {
        return $service->response();
    }

    /**
     * 修改社交资料
     * @RequestMapping(path="v1_3_3/social_profile/modify", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function social_profile_modify(SocialProfileModifyService $service)
    {
        return $service->response();
    }

    /**
     * 我的社交资料
     * @RequestMapping(path="v1_3_3/my_social_profile", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function my_social_profile(MySocialProfileService $service)
    {
        return $service->response();
    }

    /**
     * 我的-功能入口
     * @RequestMapping(path="v1_3_3/my_entrance", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function my_entrance(MyEntranceService $service)
    {
        return $service->response();
    }

    /**
     * 我的-功能入口
     * @RequestMapping(path="v1_3_4/my_entrance", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function my_entrance_v1_3_4(V1_3_4MyEntranceService $service)
    {
        return $service->response();
    }


    /**
     * 绑定收款方式
     * @RequestMapping(path="v1_3_3/withdraw/bind_info", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function withdraw_bind_info(WithdrawBindInfoService $service)
    {
        return $service->response();
    }

    /**
     * 我的点赞列表
     * @RequestMapping(path="v1_3_4/my/like_list", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function my_like_list(MyLikeListService $service)
    {
        return $service->response();
    }

    /**
     * 用户的动态视频列表
     * @RequestMapping(path="v1_3_4/video_list", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function user_video_list(UserVideoListService $service)
    {
        return $service->response();
    }

    /**
     * 主播数据详情
     * @RequestMapping(path="v1_3_5/host/perform_detail", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function host_perform_detail(HostPerformDetailService $service)
    {
        return $service->response();
    }

    /**
     * 主播通话排行榜
     * @RequestMapping(path="v1_3_5/host/call_rank", methods="post")
     * @Middleware(JTAuthMiddleware::class)
     */
    public function host_call_rank(HostCallRankService $service)
    {
        return $service->response();
    }
}
